home *** CD-ROM | disk | FTP | other *** search
- TITL 'TMS32011 DIALER CODE'
- IDT 'DIALER'
- OPTION XREF,TUNLST
- **********************************************************
- ***** 320 Based DTMF Dialer code. *****
- ***** *****
- ***** Written by Peter Ehlig 12/02/85 *****
- ***** Revision 1.0 *****
- ***** *****
- ***** COPYRIGHT TEXAS INSTRUMENTS, 07/25/86 *****
- ***** *****
- **********************************************************
- DEF DIAL,TONY0,TONY1,NXTTON
- REF ANALOG,TMS011,TONTBL
- PAGE
- ********------------------------------------------********
- ***** DATA MEMORY USED. *****
- ********------------------------------------------********
- SPAR0 EQU 0
- SPAR1 EQU 1
- SPAR2 EQU 2
- H8000 EQU 3 # DIALER ROUNDING FACTOR
- ONE EQU 4 I# VALUE 1 HELD FOR MASKING
- MASK1 EQU 5 I# SWAVE MACRO TBL RANGE ADJ >7F
- MASK2 EQU 6 I# SWAVE MACRO TBL RANGE ADJ >7FFF
- MASK3 EQU 7 # XMIT PHASE ENCODE MASK >0006
- OFSET0 EQU 8 I# SWAVE MACRO POINT TO COS TABLE
- XMTOUT EQU 9 % XMIT HOLD FOR TRANSMIT OUTPUT
- XDIBIT EQU 10 # XMIT DIBIT ISOLATION MASK
- PLUS1 EQU 11 I# +1 Q12 >FFF & MASK VALUE
- XMTD EQU 12 % XMIT HOLD DTE INPUT
- RECST EQU 13 I% RECEIVER STATUS
- BSMAX EQU 14 & I% BAUD SIGNAL 0AX
- LASTM EQU 14 & % LAST MAX SIGNAL IN 300BPS
- SAMPLE EQU 15 % BAUD LIMIT SAMPLE COUNT
- SAMXMT EQU 16 % TRANSMITTER SAMPLE COUNT
- BITOUT EQU 17 % DIBIT POSITIONED TO XMIT/7742
- RDIBIT EQU 18 % DECODED DIBIT
- SPAR3 EQU 19
- MINUS1 EQU 20 I# >F000 MASK FOR Q12 FORMAT
- TEMP EQU 21 * MISC. TEMPERORY REGISTER
- XMTHLD EQU 22 % BIASED TRANSMIT DATA
- RECHLD EQU 23 % BIASED RECEIVE DATA
- DBUGC EQU 24 @ COUNT BAUD CYCLES FOR DEBUG
- DBUGC2 EQU 25 @ ERROR BAUD DELAY COUNT
- HIST1 EQU 26 @ DEBUG DESCRAMBLER
- HIST2 EQU 27 @ DEBUG DESCRAMBLER
- DPOINT EQU 28 @ BAUD EDGE POINTER
- SPAR4 EQU 29
- SPAR5 EQU 30
- SPAR6 EQU 31
- RDELTA EQU 32 & % RECEIVE SINE TABLE STEP
- TALF1 EQU 32 & % DTMF TONE 1 SINE TABLE STEP
- RALPHA EQU 33 & % RECEIVER CURRENT SINE ANGLE
- FRACT1 EQU 33 & % DTMF TONE 1 CURRENT ANGLE
- SINA EQU 34 & % SINE TABLE READING
- TONE1 EQU 34 & % DTMF TONE 1 READING
- XDELTA EQU 35 & % TRANSMIT SINE TABLE STEP
- TALF2 EQU 35 & % DTMF TONE 2 SINE TABLE STEP
- XALPHA EQU 36 & % TRANSMIT CURRENT SINE ANGLE
- FRACT2 EQU 36 & % DTMF TONE 2 CURRENT ANGLE
- COSA EQU 37 & % COSINE TABLE READING
- TONE2 EQU 37 & % DTMF TONE 2 READING
- SPAR7 EQU 38
- SPAR8 EQU 39
- SPAR9 EQU 40
- SPAR10 EQU 41
- SPAR11 EQU 42
- SPAR12 EQU 43
- SPAR13 EQU 44
- OFSET1 EQU 45 # XMIT POINT TO DIBIT ENCODE TABLE
- XPTR EQU 46 # XMIT POINT TO RAISED COS TABLE
- INDXPH EQU 47 I# XMIT POINT TO PHASE ENCODE TABLE
- RPHSE EQU 48 I# OFFSET FOR RECEIVE PHASE DECODE
- RBUF0 EQU 49 & % FILTER DATA 49-85
- FILIN EQU 49 & % INPUT TO 300BPS MODEM
- RBUF1 EQU 50 & % RECEIVE BPF COEFFICIENT
- *
- COEFBP EQU 50 & % 50-99 COEFS FOR 300BPS FILTERS
- *
- RBUF2 EQU 51 % RECEIVE BPF COEFFICIENT
- RBUF3 EQU 52 % RECEIVE BPF COEFFICIENT
- RBUF4 EQU 53 % RECEIVE BPF COEFFICIENT
- RBUF5 EQU 54 % RECEIVE BPF COEFFICIENT
- RBUF6 EQU 55 % RECEIVE BPF COEFFICIENT
- RBUF7 EQU 56 % RECEIVE BPF COEFFICIENT
- RBUF8 EQU 57 % RECEIVE BPF COEFFICIENT
- RBUF9 EQU 58 % RECEIVE BPF COEFFICIENT
- RBUF10 EQU 59 % RECEIVE BPF COEFFICIENT
- RBUF11 EQU 60 % RECEIVE BPF COEFFICIENT
- RBUF12 EQU 61 % RECEIVE BPF COEFFICIENT
- RBUF13 EQU 62 % RECEIVE BPF COEFFICIENT
- RBUF14 EQU 63 % RECEIVE BPF COEFFICIENT
- RBUF15 EQU 64 % RECEIVE BPF COEFFICIENT
- RBUF16 EQU 65 % RECEIVE BPF COEFFICIENT
- RBUF17 EQU 66 % RECEIVE BPF COEFFICIENT
- RBUF18 EQU 67 % RECEIVE BPF COEFFICIENT
- RBUF19 EQU 68 % RECEIVE BPF COEFFICIENT
- RBUF20 EQU 69 % RECEIVE BPF COEFFICIENT
- RBUF21 EQU 70 % RECEIVE BPF COEFFICIENT
- RBUF22 EQU 71 % RECEIVE BPF COEFFICIENT
- RBUF23 EQU 72 % RECEIVE BPF COEFFICIENT
- RBUF24 EQU 73 % RECEIVE BPF COEFFICIENT
- RBUF25 EQU 74 % RECEIVE BPF COEFFICIENT
- RBUF26 EQU 75 % RECEIVE BPF COEFFICIENT
- RBUF27 EQU 76 % RECEIVE BPF COEFFICIENT
- RBUF28 EQU 77 % RECEIVE BPF COEFFICIENT
- RBUF29 EQU 78 % RECEIVE BPF COEFFICIENT
- RBUF30 EQU 79 % RECEIVE BPF COEFFICIENT
- RBUF31 EQU 80 % RECEIVE BPF COEFFICIENT
- RBUF32 EQU 81 % RECEIVE BPF COEFFICIENT
- RBUF33 EQU 82 % RECEIVE BPF COEFFICIENT
- RBUF34 EQU 83 % RECEIVE BPF COEFFICIENT
- RBUF35 EQU 84 % RECEIVE BPF COEFFICIENT
- RBUF36 EQU 85 % RECEIVE BPF COEFFICIENT
- XIOUT EQU 86 % XMIT HOLD FILTERED I VALUE
- XQOUT EQU 87 % XMIT HOLD FILTERED Q VALUE
- XOLDPH EQU 88 % XMIT HOLD LAST PHASE
- XNEWPH EQU 89 % XMIT HOLD NEW PHASE
- ERRSIG EQU 90 % FILTERED CARRIER ERROR SIGNAL
- PLL1 EQU 91 I% CARRIER RECOVERY PLL FILTER COEFFICIENT1
- PLL2 EQU 92 I% CARRIER RECOVERY PLL FILTER COEFFICIENT2
- SIGNI EQU 93 % SIGN OF I CHANNEL (TO COMPUTE ERROR)
- SIGNQ EQU 94 % SIGN OF Q CHANNEL (TO COMPUTE ERROR)
- ERROR EQU 95 % SIGNI*(Q)-SIGNQ*(I) = ERROR
- ERNM1 EQU 96 I% PLL TAPS
- CTRND EQU 97 I% CARRIER SHIFT TRENDS
- TRNDCT EQU 98 I% CARRIER TREND BAUD COUNT
- ISUM EQU 99 % FILTERED/PHASE SHIFTED SAMPLE
- QSUM EQU 100 & % FILTERED/PHASE SHIFTED SAMPLE
- *
- DLYBUF EQU 100 & % 100-119 DATA DELAY/300BPS MODEM
- *
- RECI EQU 101 % BASEBAND I CHANNEL
- RECQ EQU 102 % BASEBAND Q CHANNEL
- ENRGY EQU 103 % CURRENT ENERGY
- PENRGY EQU 104 % PREVIOUS ENERGY
- ERNM2 EQU 105 I% CLOCK RECOVERY PLL TAPS
- BERROR EQU 106 % CALCULATED BAUD ERROR
- BEROUT EQU 107 % SCALED/FILTERED BAUD ERROR
- BPLL1 EQU 108 I# BAUD PLL COEF
- BPLL2 EQU 109 I# BAUD PLL COEF
- TRSHD1 EQU 110 I# THRESHOLD FOR CARRIER RECOVERY
- TRSHD2 EQU 111 I# THRESHOLD FOR BAUD RECOVERY
- XIBUF0 EQU 112 % XMIT STORE DATA FOR RAISED COS
- XIBUF1 EQU 113 % XMIT STORE DATA FOR RAISED COS
- XIBUF2 EQU 114 % XMIT STORE DATA FOR RAISED COS
- XQBUF0 EQU 115 % XMIT STORE DATA FOR RAISED COS
- XQBUF1 EQU 116 % XMIT STORE DATA FOR RAISED COS
- XQBUF2 EQU 117 % XMIT STORE DATA FOR RAISED COS
- CX0 EQU 118 # XMIT COEF FOR RAISED COS
- CX1 EQU 119 # XMIT COEF FOR RAISED COS
- CX2 EQU 120 & # XMIT COEF FOR RAISED COS
- BPCOEF EQU 120 & % VAR POINTER TO 300BPS COEFS
- ROLDPH EQU 121 & I% PREVIOUS ABSOLUTE PHASE (QUADRANT)
- TMDLY EQU 121 & % DELAY COUNTER REGISTER
- RNEWPH EQU 122 & % CURRENT ABSOLUTE PHASE (QUADRANT)
- FSP1 EQU 122 & % SPACE FILTER ENERGY
- AGC EQU 123 & I% AUTOMATIC GAIN FACTOR
- FMK1 EQU 123 & % MARK FILTER ENERGY
- AGCRA EQU 124 & I% SIGNAL MAX RUNNING AVERAGE FOR AGC
- BIT103 EQU 124 & * HOLD REGISTER FOR DATA BIT
- AGCOFF EQU 125 & I% AGC CALCULATION LOOKUP TABLE
- MARK1 EQU 125 & * MARK STEP VALUE 300BPS MODEM
- AGCNT EQU 126 & I% BAUD SAMPLE COUNT
- SPACE1 EQU 126 & I* SPACE STEP VALUE 300BPS MODEM
- AGCLEV EQU 127 % TEMPORARY AGC LEVEL (AGCUPT)
- *---------------
- PAGE
- **********************************************************
- ***** 320 BASED TONE DIALER *****
- **********************************************************
- DIAL EQU $
- LACK >0F MASK OFF COMMAND BITS
- AND XMTD TO GET DIGIT
- SACL TEMP SAVE COMMAND
- LACK TONTBL GET LOCATION OF DTMF TABLE
- ADD TEMP,1 ADD TONE*2 VALUE
- TBLR TALF1 GET SINE TABLE INCREMENT TONE 1
- ADD ONE INCREMENT TONE TABLE ADDRESS
- TBLR TALF2 GET SINE TABLE INCREMENT TONE 2
- LAC ONE,10 SET THE DTMF TIMER
- SACL SAMXMT FOR OVER 80MS TONE LENGTH
- CALL TONY0
- DTMFL CALL TONY1
- LAC SAMXMT DECREMENT THE LONG COUNTER
- SUB ONE BY ONE AND CHECK IF TONE
- SACL SAMXMT FINISHED
- BNZ DTMFL IF NOT THEN CONTINUE
- * REINITIALIZE FOR MODEM EXECUTION
- ZAC
- SACL XMTOUT CLEAR OUT SERIAL XMIT BUFFER
- CALL ANALOG WAIT FOR FRAME
- CALL TMS011 BY LOADING IT WITH A ZERO
- *
- RET RETURN TO CALLING SEQUENCE
- *
- TONY0 EQU $
- LACK 0 CLEAR THE FRACTIONAL
- SACL FRACT1 SUMMING REG1
- SACL FRACT2 SUMMING REG2
- LAC ONE,14 SET MASK/ROUNDING VALUE TO
- SACL H8000 TO >8000
- *
- TONY1 LARP 1
- LARK 1,TALF1 POINT TO BEGINING OF DATA
- CALL NXTTON GET FIRST TONE VALUE
- CALL NXTTON GET SECOND TONE VALUE
- LAC TONE1,13 GET FIRST TONE VALUE
- ADD TONE2,13 AND ADD IN SECOND TONE
- SACH XMTOUT AND HOLD IT TILL FRAME
- CALL ANALOG WAIT FOR FRAME
- CALL TMS011 OUTPUT AND INPUT
- RET
- *
- NXTTON EQU $
- LAC *+,12 GET NEXT INCREMENT AND
- ADD *,12 ADD IN CURRENT POSITION
- SUB H8000,9 COMPARE TO MAXIMUM TABLE
- BGEZ OVRFL1 IF > 0 THEN OK
- ADD H8000,9 ELSE RESTORE NUMBER
- OVRFL1 SACH *+,4 SAVE POSITION
- ADD H8000,1 ROUND NUMBER UP
- SUB H8000,9 COMPARE TO MAXIMUM TABLE
- BGEZ OVRFL2 IF > 0 THEN OK
- ADD H8000,9 ELSE RESTORE NUMBER
- OVRFL2 ADDH OFSET0 ADD IN TOP OF THE SINE TABLE
- SACH TEMP SAVE THE INTEGER PART
- LAC TEMP ADD IN OFFSET VALUE
- TBLR *+ GET THE TONE VALUE
- RET
- *
- END